#include <head.h>


int main(int argc, char const *argv[])
{
    // 1、创建用户数据报 套接字
    int sok_fd = socket(AF_INET, SOCK_DGRAM, 0);
    if (-1 == sok_fd)
    {
        perror("socket error:");
        return -1;
    }

    // 2、填充服务器网络信息结构体
    struct sockaddr_in soc_addr_in;                           // 创建结构体
    soc_addr_in.sin_family = AF_INET;                         // 结构体类型  IP4
    soc_addr_in.sin_port = htons(5555);                       // 端口号
    soc_addr_in.sin_addr.s_addr = inet_addr("192.168.10.17"); // IP地址
    socklen_t addrlen = sizeof(soc_addr_in);                  // 结构体大小

    // 3、将套接字与服务器的网络信息结构体绑定
    if (-1 == bind(sok_fd, (struct sockaddr *)&soc_addr_in, addrlen))
    {
        perror("bind error:");
        return -1;
    }

    // 4、收发数据
    struct sockaddr_in soc_addr_in_client; // 创建结构体

    char buf[128];
    while (1)
    {
        recvfrom( sok_fd , buf , sizeof(buf) , 0 , (struct sockaddr *)&soc_addr_in_client , &addrlen);
        printf("%s\n" , buf);
        // 组装应答信息
        strcat(buf , "  hqyj");
        sendto( sok_fd , buf , sizeof(buf) , 0 ,  (struct sockaddr *)&soc_addr_in_client, addrlen);
    }
    


    // 5、关闭套接字
    close(sok_fd);
    return 0;
}


